package com.wangji92.arthas.plugin.demo.test.function;

/**
 * @author liuxiongkang
 */
public class Utils {
    /**
     * 如果参数为true抛出异常
     **/
    public static ThrowExceptionFunction isTure(boolean b) {

        return errorMessage -> {
            if (b) {
                throw new RuntimeException(errorMessage);
            }
        };
    }

    /**
     * 参数为true或false时，分别进行不同的操作
     **/
    public static BranchHandle isTureOrFalse(boolean b) {

        return (trueHandle, falseHandle) -> {
            if (b) {
                trueHandle.run();
            } else {
                falseHandle.run();
            }
        };
    }

    /**
     * 参数为true或false时，分别进行不同的操作
     **/
    public static PresentOrElseHandler<?> isBlankOrNoBlank(String str) {

        return (consumer, runnable) -> {
            if (str == null || str.length() == 0) {
                runnable.run();
            } else {
                consumer.accept(str);
            }
        };
    }

    public static void main(String[] args) {
        Utils.isTure(true).throwMessage("isTure 111");
        Utils.isTure(false).throwMessage("isTure 222");

        Utils.isTureOrFalse(true).trueOrFalseHandle(() -> System.out.println("trueOrFalseHandle 111"), () -> System.out.println("trueOrFalseHandle 333"));
        Utils.isTureOrFalse(false).trueOrFalseHandle(() -> System.out.println("trueOrFalseHandle 222"), () -> System.out.println("trueOrFalseHandle 444"));

        Utils.isBlankOrNoBlank("char").presentOrElseHandle(cha -> System.out.println("trueOrFalseHandle 111" + cha), () -> System.out.println("trueOrFalseHandle 333"));
        Utils.isBlankOrNoBlank("").presentOrElseHandle(cha -> System.out.println("trueOrFalseHandle 222" + cha), () -> System.out.println("trueOrFalseHandle 444"));
    }
}
